laksmi.lekerdezes = {
	
	tabla : null,
	tfoot : null,
	egyenleg : 0,
	excel : null,
	actualTable : null,
	
	init : function(){
		laksmi.lekerdezes.excel = $('BizonylatExcel');
		
		Event.observe(document, 'submit', laksmi.lekerdezes.submitKezelo);
		Event.observe(document, 'click', laksmi.lekerdezes.clickKezelo);
		Event.observe(laksmi.lekerdezes.excel, 'change', laksmi.lekerdezes.excelKezelo);
		
		new inputmask('date_iso', $('BizonylatDatumtol'));
		new inputmask('date_iso', $('BizonylatDatumig'));
		new inputmask('amount_eu', $('BizonylatOsszeg'));
		
		var help = Builder.node('a',
										{
											href : '#',
											title : 'Help'
										} ,
										[
											Builder.node('img', {
												src : laksmi.baseUrl + 'img/help.png',
												className : 'vimg',
												id : 'help'
											})
										 ]);
		$('menuButtons').insert(help);
		laksmi.vImgsHandler([help]);
	},//laksmi.init
	
	excelKezelo : function(e){
		//ha excelt akarunk kapni akkor a form actiont ki kell egészíteni a kiterjesztéssel
		if(laksmi.lekerdezes.excel.checked){
			$('BizonylatLekerdezesForm').action += '.xlsx';
			$('lekerdezSubmit').value = 'Exportálás Excelbe';
		}
		else{
			$('BizonylatLekerdezesForm').action = $('BizonylatLekerdezesForm').action.replace(/\.xlsx/, '');
			$('lekerdezSubmit').value = 'Lekérdez';
		}
	},
	
	submitKezelo : function(e){
		//az aláhúzásos értékek közül csak azokat hagyjuk meg amelyeknek van aláhúzatlan párja is
		$('BizonylatLekerdezesForm').getElements().each(function(elem){
			if(elem.name.search(/osztaly/) > 0 || elem.name.search(/szamla/) > 0 || elem.name.search(/gyujto/) > 0){
				if(elem.name.search(/_/) > 0 && !elem.value){		//aláhúzásos és nincs értéke
					$(elem.id.replace(/_/, '')).value = null;
				}
			}
		});
		
		//ennek kell utolsónak lennie az el nem kapott hiba miatt
		//ha a teljes kivonat ki van választva akkor disabedre kell állítani a gyüjtőt és a valutát mert ezeket nem tartalmazza az sql lekérdezés
		if($('BizonylatKivonatTeljeskivonat').checked){
			$('TetelGyujto').disabled = 'disabled';
			$('BizonylatValutas').disabled = 'disabled';
			throw new Error('Pár feltételt lehet, hogy eldobtam');
		}

		//Event.stop(e);return false;
	},//laksmi.lekerdezes.submitkezelo
	
	addsIdToHiddenPair : function(input, selectedLi){
		//autocomplete után az input mező értékeként beállítjuk a kiválasztott osztály/számla/gyüjtő id-jét
		//a cake autocomplete hívja afterUpdate eseményre, nincs rá hivatkozás ebben a fájlban
		//keressük meg az input aláhúzatlan párját és állítsuk be az értkét
		$(input.id.replace(/_/,'')).value = laksmi.elotagEltavolit(selectedLi.id);
	},//laksmi.lekerdezes.addsIdToHiddenPair
	
	clickKezelo : function(e){
		if (e.target.id == 'help') {
			laksmi.uzenetmutat('A listák szűrhetőek a gyüjtőkre, osztályokra és ellenszámlára kattintva. A szűrést az osztály nevére kattintva lehet feloldani.',
									 null,
									 {},
									 {duration: 30.0});
		}
		//helyzet lekérése
		var viewportTop = (e.target.viewportOffset()).top;

		e.target.parentNode.parentNode.addClassName('kiemel');		//emeljük ki azt a sort amibe kattintott

		//ha _f css-ű linkre kattintottunk szűrjünk ki minden mást
		if(e.target.nodeName == "A" && e.target.className.search(/_f/) != -1){
			//menjünk végig ezen a táblán soronként és tüntessük el ami nem felel meg a szűrőnek
			var tr = e.target.parentNode.parentNode;
			if(e.target.className.search(/_o/) != -1)					//osztályra szűrünk
				var searchId = tr.className.match(/_o\d*/);
			if(e.target.className.search(/_e/) != -1)					//számlaszámra szűrünk
				var searchId = tr.className.match(/_e\d*/);

			if(e.target.className.search(/_g/) != -1){				//gyüjtőre szűrünk akár több táblában is
				var searchId = tr.className.match(/_g\d*/);
				laksmi.lekerdezes.tabla = tr.parentNode;
				//az össes többi gyüjtőt szürkítsük ki
				laksmi.lekerdezes.setInactive('.gyujtok', searchId);
			}
			else
				laksmi.lekerdezes.tabla = tr.parentNode;
				
			laksmi.lekerdezes.egyenleg = 0;
			laksmi.lekerdezes.tabla.childElements().each(function(sor){
				if(sor.className.search(searchId + "_") == -1){
					sor.hide();
				}
				else{
					//ez a sor megmarad, nem lesz kiszűrve
					laksmi.lekerdezes.setEgyenleg(sor);
				}
				});
			laksmi.lekerdezes.tfoot = laksmi.lekerdezes.tabla.nextSibling;
			laksmi.lekerdezes.tfoot.hide();	//tfoot elrejtése
			Event.stop(e);
		}
		else if(e.target.nodeName == 'SPAN'){
			//a gyüjtő listában kattintottunk
			//kell a keresett gyüjtő id, mer az ott csücsül minden érintett tr class-jában is
			if(e.target.className.search(/_g/) != -1){
				var searchId = e.target.className.match(/_g\d*/);
			}
			laksmi.lekerdezes.setInactive('.gyujtok', searchId);
			//másszunk végig mindenen és szűrögessük ki ami nem kell
			$$('tr').each(function(sor){
				if (sor.parentNode.nodeName == 'TBODY') {
					if(sor.className.search(searchId + "_") == -1){		//ebben a sorban nics meg a gyüjtő
						sor.hide();
					}
					else{
						if (sor.parentNode != laksmi.lekerdezes.actualTable) {
							laksmi.lekerdezes.egyenleg = 0;
							laksmi.lekerdezes.actualTable = sor.parentNode;
						}
						laksmi.lekerdezes.setEgyenleg(sor);
					}
				}
			});
		}
		else if(e.target.nodeName == 'H2'){
			$$('.kiemel').each(function(elem){
				elem.removeClassName('kiemel');
			});
			$$('.gyujtok').each(function(elem){
				elem.removeClassName('inactive');
			});
			//az osztály nevére kattintott, mindent meg kell mutatni
			laksmi.lekerdezes.egyenleg = 0;
			laksmi.lekerdezes.actualTable = null;
			$$('tr').each(function(sor){
				sor.show();
				if (sor.parentNode != laksmi.lekerdezes.actualTable) {
					laksmi.lekerdezes.egyenleg = 0;
					laksmi.lekerdezes.actualTable = sor.parentNode;
				}
				laksmi.lekerdezes.setEgyenleg(sor);
			});
		}
		else if(e.target.nodeName == 'TH'){
			$$('.kiemel').each(function(elem){
				elem.removeClassName('kiemel');
			});
			$$('.gyujtok').each(function(elem){
				elem.removeClassName('inactive');
			});
			//a fejlécre kattintottunk mindent meg kell mutatni
			laksmi.lekerdezes.egyenleg = 0;
			laksmi.lekerdezes.tabla.childElements().each(function(sor){
				sor.show();
				//egyenlegek visszaállítása
				laksmi.lekerdezes.setEgyenleg(sor);
				});
			laksmi.lekerdezes.tfoot.show();
		}
	//	e.target.scrollTo();
	//	window.scrollBy(0, -1 * viewportTop);
	},//laksmi.lekerdezes.clickKezelo
	
	setInactive : function(css, searchId){
		//a megadott css mintának megfelelő elemeket inaktívvá tesszük ha nem tartoznak a searchId osztályba
		searchId = searchId ? searchId : null;
		$$(css).each(function(elem){
			if (elem.className.search(searchId) == -1) {
				elem.addClassName('inactive');
			}
		});
	},//laksmi.lekerdezes.setInactive
	
	setEgyenleg : function(sor){
		//a táblázat egyenleg oszlopának átszámítása
		if (sor.childElements()[7]) {
			laksmi.lekerdezes.egyenleg += laksmi.setNum(sor.childElements()[7].textContent) - laksmi.setNum(sor.childElements()[8].textContent);
			sor.childElements()[9].update(number_format(laksmi.lekerdezes.egyenleg, 0, ',', '.'));
		}
	}//laksmi.lekerdezes.setEgyenleg
		
}//laksmi.lekerdezes

document.observe('dom:loaded', function(){
	laksmi.lekerdezes.init();
	});
